"""Encoding DIMSE messages for use in testing."""
################################### C-STORE ####################################
# MCH Byte: 0x03
# MessageID: 7
# AffectedSOPClassUID: '1.1.1'
# AffectedSOPInstanceUID: '1.2.1'
# Priority: 0x02
# MoveOriginatorApplicationEntityTitle: 'UNITTEST'
# MoveOriginatorMessageID: 3
c_store_rq_cmd = (
    b"\x03\x00\x00\x00\x00\x04\x00\x00\x00\x5e"
    b"\x00\x00\x00\x00\x00\x02\x00\x06\x00\x00"
    b"\x00\x31\x2e\x31\x2e\x31\x00\x00\x00\x00"
    b"\x01\x02\x00\x00\x00\x01\x00\x00\x00\x10"
    b"\x01\x02\x00\x00\x00\x07\x00\x00\x00\x00"
    b"\x07\x02\x00\x00\x00\x02\x00\x00\x00\x00"
    b"\x08\x02\x00\x00\x00\x01\x00\x00\x00\x00"
    b"\x10\x06\x00\x00\x00\x31\x2e\x32\x2e\x31"
    b"\x00\x00\x00\x30\x10\x08\x00\x00\x00\x55"
    b"\x4e\x49\x54\x54\x45\x53\x54\x00\x00\x31"
    b"\x10\x02\x00\x00\x00\x03\x00"
)

# MCH Byte: 0x02
# PatientID: 'Test1101'
# PatientName: s'Tube^HeNe'
c_store_ds = (
    b"\x02\x10\x00\x10\x00\x0a\x00\x00\x00\x54"
    b"\x75\x62\x65\x5e\x48\x65\x4e\x65\x20\x10"
    b"\x00\x20\x00\x08\x00\x00\x00\x54\x65\x73"
    b"\x74\x31\x31\x30\x31"
)

c_store_rq_cmd_b = (
    b"\x03\x00\x00\x00\x00\x04\x00\x00\x00\xaa"
    b"\x00\x00\x00\x00\x00\x02\x00\x1a\x00\x00"
    b"\x00\x31\x2e\x32\x2e\x38\x34\x30\x2e\x31"
    b"\x30\x30\x30\x38\x2e\x35\x2e\x31\x2e\x34"
    b"\x2e\x31\x2e\x31\x2e\x32\x00\x00\x00\x00"
    b"\x01\x02\x00\x00\x00\x01\x00\x00\x00\x10"
    b"\x01\x02\x00\x00\x00\x07\x00\x00\x00\x00"
    b"\x07\x02\x00\x00\x00\x02\x00\x00\x00\x00"
    b"\x08\x02\x00\x00\x00\x01\x00\x00\x00\x00"
    b"\x10\x3a\x00\x00\x00\x31\x2e\x32\x2e\x33"
    b"\x39\x32\x2e\x32\x30\x30\x30\x33\x36\x2e"
    b"\x39\x31\x31\x36\x2e\x32\x2e\x36\x2e\x31"
    b"\x2e\x34\x38\x2e\x31\x32\x31\x35\x37\x30"
    b"\x39\x30\x34\x34\x2e\x31\x34\x35\x39\x33"
    b"\x31\x36\x32\x35\x34\x2e\x35\x32\x32\x34"
    b"\x34\x31\x00\x00\x00\x30\x10\x0c\x00\x00"
    b"\x00\x55\x4e\x49\x54\x54\x45\x53\x54\x5f"
    b"\x53\x43\x50\x00\x00\x31\x10\x02\x00\x00"
    b"\x00\x03\x00"
)
c_store_rq_ds_b = (
    b"\x02\x10\x00\x10\x00\x0a\x00\x00\x00\x54"
    b"\x75\x62\x65\x20\x48\x65\x4e\x65\x20\x10"
    b"\x00\x20\x00\x08\x00\x00\x00\x54\x65\x73"
    b"\x74\x31\x31\x30\x31"
)
c_store_rsp_cmd = (
    b"\x03\x00\x00\x00\x00\x04\x00\x00\x00\x4c"
    b"\x00\x00\x00\x00\x00\x02\x00\x08\x00\x00"
    b"\x00\x31\x2e\x32\x2e\x34\x2e\x31\x30\x00"
    b"\x00\x00\x01\x02\x00\x00\x00\x01\x80\x00"
    b"\x00\x20\x01\x02\x00\x00\x00\x05\x00\x00"
    b"\x00\x00\x08\x02\x00\x00\x00\x01\x01\x00"
    b"\x00\x00\x09\x02\x00\x00\x00\x00\x00\x00"
    b"\x00\x00\x10\x0c\x00\x00\x00\x31\x2e\x32"
    b"\x2e\x34\x2e\x35\x2e\x37\x2e\x38\x00"
)

#################################### C-ECHO ####################################
# (0000, 0000) Command Group Length                UL: 56
# (0000, 0002) Affected SOP Class UID              UI: Verification SOP Class
# (0000, 0100) Command Field                       US: 48
# (0000, 0110) Message ID                          US: 7
# (0000, 0800) Command Data Set Type               US: 257
c_echo_rq_cmd = (
    b"\x03\x00\x00\x00\x00\x04\x00\x00\x00\x38"
    b"\x00\x00\x00\x00\x00\x02\x00\x12\x00\x00"
    b"\x00\x31\x2e\x32\x2e\x38\x34\x30\x2e\x31"
    b"\x30\x30\x30\x38\x2e\x31\x2e\x31\x00\x00"
    b"\x00\x00\x01\x02\x00\x00\x00\x30\x00\x00"
    b"\x00\x10\x01\x02\x00\x00\x00\x07\x00\x00"
    b"\x00\x00\x08\x02\x00\x00\x00\x01\x01"
)

# (0000, 0000) Command Group Length                UL: 66
# (0000, 0002) Affected SOP Class UID              UI: Verification SOP Class
# (0000, 0100) Command Field                       US: 32816
# (0000, 0120) Message ID Being Responded To       US: 8
# (0000, 0800) Command Data Set Type               US: 257
# (0000, 0900) Status                              US: 0
c_echo_rsp_cmd = (
    b"\x03\x00\x00\x00\x00\x04\x00\x00\x00\x42"
    b"\x00\x00\x00\x00\x00\x02\x00\x12\x00\x00"
    b"\x00\x31\x2e\x32\x2e\x38\x34\x30\x2e\x31"
    b"\x30\x30\x30\x38\x2e\x31\x2e\x31\x00\x00"
    b"\x00\x00\x01\x02\x00\x00\x00\x30\x80\x00"
    b"\x00\x20\x01\x02\x00\x00\x00\x08\x00\x00"
    b"\x00\x00\x08\x02\x00\x00\x00\x01\x01\x00"
    b"\x00\x00\x09\x02\x00\x00\x00\x00\x00"
)

#################################### C-FIND ####################################
# MCH Byte: 0x03
# CommandGroupLength 74
# AffectedSOPClassUID 1.2.840.10008.5.1.4.1.1.2
# CommandField 0x00 0x20
# MessageID 7
# Priority 2
# CommandDataSetType 1
c_find_rq_cmd = (
    b"\x03\x00\x00\x00\x00\x04\x00\x00\x00\x4a"
    b"\x00\x00\x00\x00\x00\x02\x00\x1a\x00\x00"
    b"\x00\x31\x2e\x32\x2e\x38\x34\x30\x2e\x31"
    b"\x30\x30\x30\x38\x2e\x35\x2e\x31\x2e\x34"
    b"\x2e\x31\x2e\x31\x2e\x32\x00\x00\x00\x00"
    b"\x01\x02\x00\x00\x00\x20\x00\x00\x00\x10"
    b"\x01\x02\x00\x00\x00\x07\x00\x00\x00\x00"
    b"\x07\x02\x00\x00\x00\x02\x00\x00\x00\x00"
    b"\x08\x02\x00\x00\x00\x01\x00"
)

# MCH Byte: 0x02
# QueryRetrieveLevel PATIENT
# PatientID *
c_find_rq_ds = (
    b"\x02\x08\x00\x52\x00\x08\x00\x00\x00\x50"
    b"\x41\x54\x49\x45\x4e\x54\x20\x10\x00\x20"
    b"\x00\x02\x00\x00\x00\x2a\x20"
)
c_find_rsp_cmd = (
    b"\x03\x00\x00\x00\x00\x04\x00\x00\x00\x4a"
    b"\x00\x00\x00\x00\x00\x02\x00\x1a\x00\x00"
    b"\x00\x31\x2e\x32\x2e\x38\x34\x30\x2e\x31"
    b"\x30\x30\x30\x38\x2e\x35\x2e\x31\x2e\x34"
    b"\x2e\x31\x2e\x31\x2e\x32\x00\x00\x00\x00"
    b"\x01\x02\x00\x00\x00\x20\x80\x00\x00\x20"
    b"\x01\x02\x00\x00\x00\x05\x00\x00\x00\x00"
    b"\x08\x02\x00\x00\x00\x01\x00\x00\x00\x00"
    b"\x09\x02\x00\x00\x00\x00\xff"
)
c_find_rsp_ds = (
    b"\x02\x08\x00\x52\x00\x08\x00\x00\x00\x50"
    b"\x41\x54\x49\x45\x4e\x54\x20\x08\x00\x54"
    b"\x00\x08\x00\x00\x00\x46\x49\x4e\x44\x53"
    b"\x43\x50\x20\x10\x00\x10\x00\x0c\x00\x00"
    b"\x00\x41\x4e\x4f\x4e\x5e\x41\x5e\x42\x5e"
    b"\x43\x5e\x44"
)

#################################### C-MOVE ####################################
c_move_rq_cmd = (
    b"\x03\x00\x00\x00\x00\x04\x00\x00\x00\x5a"
    b"\x00\x00\x00\x00\x00\x02\x00\x1a\x00\x00"
    b"\x00\x31\x2e\x32\x2e\x38\x34\x30\x2e\x31"
    b"\x30\x30\x30\x38\x2e\x35\x2e\x31\x2e\x34"
    b"\x2e\x31\x2e\x31\x2e\x32\x00\x00\x00\x00"
    b"\x01\x02\x00\x00\x00\x21\x00\x00\x00\x10"
    b"\x01\x02\x00\x00\x00\x07\x00\x00\x00\x00"
    b"\x06\x08\x00\x00\x00\x4d\x4f\x56\x45\x5f"
    b"\x53\x43\x50\x00\x00\x00\x07\x02\x00\x00"
    b"\x00\x02\x00\x00\x00\x00\x08\x02\x00\x00"
    b"\x00\x01\x00"
)
c_move_rq_ds = (
    b"\x02\x08\x00\x52\x00\x08\x00\x00\x00\x50"
    b"\x41\x54\x49\x45\x4e\x54\x20\x10\x00\x20"
    b"\x00\x02\x00\x00\x00\x2a\x20"
)
c_move_rsp_cmd = (
    b"\x03\x00\x00\x00\x00\x04\x00\x00\x00\x72"
    b"\x00\x00\x00\x00\x00\x02\x00\x1a\x00\x00"
    b"\x00\x31\x2e\x32\x2e\x38\x34\x30\x2e\x31"
    b"\x30\x30\x30\x38\x2e\x35\x2e\x31\x2e\x34"
    b"\x2e\x31\x2e\x31\x2e\x32\x00\x00\x00\x00"
    b"\x01\x02\x00\x00\x00\x21\x80\x00\x00\x20"
    b"\x01\x02\x00\x00\x00\x05\x00\x00\x00\x00"
    b"\x08\x02\x00\x00\x00\x01\x00\x00\x00\x00"
    b"\x09\x02\x00\x00\x00\x00\xff\x00\x00\x20"
    b"\x10\x02\x00\x00\x00\x03\x00\x00\x00\x21"
    b"\x10\x02\x00\x00\x00\x01\x00\x00\x00\x22"
    b"\x10\x02\x00\x00\x00\x02\x00\x00\x00\x23"
    b"\x10\x02\x00\x00\x00\x04\x00"
)
c_move_rsp_ds = (
    b"\x02\x08\x00\x52\x00\x08\x00\x00\x00\x50"
    b"\x41\x54\x49\x45\x4e\x54\x20\x10\x00\x20"
    b"\x00\x02\x00\x00\x00\x2a\x20"
)

c_move_rsp_cmd_with_dup = (
    b"\x03\x00\x00\x00\x00\x04\x00\x00\x00\x72"
    b"\x00\x00\x00\x00\x00\x02\x00\x1a\x00\x00"
    b"\x00\x31\x2e\x32\x2e\x38\x34\x30\x2e\x31"
    b"\x30\x30\x30\x38\x2e\x35\x2e\x31\x2e\x34"
    b"\x2e\x31\x2e\x31\x2e\x32\x00\x00\x00\x00"
    b"\x01\x02\x00\x00\x00\x21\x80\x00\x00\x20"
    b"\x01\x02\x00\x00\x00\x05\x00\x00\x00\x00"
    b"\x08\x02\x00\x00\x00\x01\x00\x00\x00\x00"
    b"\x09\x02\x00\x00\x00\x00\xff\x00\x00\x01"
    b"\x09\x08\x00\x00\x00\x00\x00\x01\x00\x00"
    b"\x00\x02\x00\x00\x00\x20\x10\x04\x00\x00"
    b"\x00\x03\x00\x00\x00\x00\x00\x21\x10\x04"
    b"\x00\x00\x00\x01\x00\x00\x00\x00\x00\x22"
    b"\x10\x04\x00\x00\x00\x02\x00\x00\x00\x00"
    b"\x00\x23\x10\x04\x00\x00\x00\x04\x00\x00"
    b"\x00"
)

##################################### C-GET ####################################
# (0000, 0000) Command Group Length                UL: 74
# (0000, 0002) Affected SOP Class UID              UI: CT Image Storage
# (0000, 0100) Command Field                       US: 16
# (0000, 0110) Message ID                          US: 7
# (0000, 0700) Priority                            US: 2
# (0000, 0800) Command Data Set Type               US: 1
c_get_rq_cmd = (
    b"\x03\x00\x00\x00\x00\x04\x00\x00\x00\x4a"
    b"\x00\x00\x00\x00\x00\x02\x00\x1a\x00\x00"
    b"\x00\x31\x2e\x32\x2e\x38\x34\x30\x2e\x31"
    b"\x30\x30\x30\x38\x2e\x35\x2e\x31\x2e\x34"
    b"\x2e\x31\x2e\x31\x2e\x32\x00\x00\x00\x00"
    b"\x01\x02\x00\x00\x00\x10\x00\x00\x00\x10"
    b"\x01\x02\x00\x00\x00\x07\x00\x00\x00\x00"
    b"\x07\x02\x00\x00\x00\x02\x00\x00\x00\x00"
    b"\x08\x02\x00\x00\x00\x01\x00"
)
c_get_rq_ds = (
    b"\x02\x08\x00\x52\x00\x08\x00\x00\x00\x50"
    b"\x41\x54\x49\x45\x4e\x54\x20\x10\x00\x20"
    b"\x00\x02\x00\x00\x00\x2a\x20"
)
c_get_rsp_cmd = (
    b"\x03\x00\x00\x00\x00\x04\x00\x00\x00\x72"
    b"\x00\x00\x00\x00\x00\x02\x00\x1a\x00\x00"
    b"\x00\x31\x2e\x32\x2e\x38\x34\x30\x2e\x31"
    b"\x30\x30\x30\x38\x2e\x35\x2e\x31\x2e\x34"
    b"\x2e\x31\x2e\x31\x2e\x32\x00\x00\x00\x00"
    b"\x01\x02\x00\x00\x00\x10\x80\x00\x00\x20"
    b"\x01\x02\x00\x00\x00\x05\x00\x00\x00\x00"
    b"\x08\x02\x00\x00\x00\x01\x00\x00\x00\x00"
    b"\x09\x02\x00\x00\x00\x00\xff\x00\x00\x20"
    b"\x10\x02\x00\x00\x00\x03\x00\x00\x00\x21"
    b"\x10\x02\x00\x00\x00\x01\x00\x00\x00\x22"
    b"\x10\x02\x00\x00\x00\x02\x00\x00\x00\x23"
    b"\x10\x02\x00\x00\x00\x04\x00"
)
c_get_rsp_ds = (
    b"\x02\x08\x00\x52\x00\x08\x00\x00\x00\x50"
    b"\x41\x54\x49\x45\x4e\x54\x20\x10\x00\x20"
    b"\x00\x02\x00\x00\x00\x2a\x20"
)
